package java2_chatroom;

import java.io.IOException;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

/**
 * 聊天室单线程版本服务器端
 * @author yuisama
 * @date 2018/8/31 18:35
 */
public class SingleThreadServer {
    public static void main(String[] args) {
        try {
            // 建立服务端ServerSocket并绑定本地6666端口号
            ServerSocket serverSocket = new ServerSocket(6666);
            // 等待客户端连接
            System.out.println("等待客户端连接ing....");
            // 服务器线程一直阻塞，直到有客户端连接，返回客户端连接Socket
            Socket client = serverSocket.accept();
            System.out.println("有客户端连接，客户端端口号为 "
                    +client.getPort());
            // 获取客户端输出流，向客户端输出信息
            PrintStream out = new PrintStream(client.getOutputStream(),true,
                    "UTF-8");
            // 获取客户端输入流，读取客户端信息
            Scanner in = new Scanner(client.getInputStream());
            if (in.hasNextLine()) {
                System.out.println("客户端发来的信息为: "+in.nextLine());
            }
            out.println("Hello I am Server");
            // 关闭输入、输出流
            in.close();
            out.close();
            serverSocket.close();
        } catch (IOException e) {
            System.err.println("服务器建立连接失败，异常为 "+e);
        }

    }
}
